var root = {
  val: 3,
  left: {
    val: 9
  },
  right: {
    val: 20,
    left: {
      val: 15
    },
    right: {
      val: 7
    }
  }
}

/**
 * 使用递归的方式
 * @param {TreeNode} root
 * @return {number[]}
 */
var maxDepth = function(root) {
  var res = 0;
  var getMaxDepth = function (node, depth) {
    if (node == null) {
      return;
    }
    if (node.left == null && node.right == null) { // 如果是叶子节点，就更新结果集
      res = Math.max(res, depth);
    }
    getMaxDepth(node.left, depth + 1); // 累加深度，遍历左子树
    getMaxDepth(node.right, depth + 1); // 累加深度，遍历右子树
  }
  getMaxDepth(root, 1);
  return res;
};

console.log(maxDepth(root))